﻿using System;

namespace AcademicPlanner.Domain
{
	/// <summary>
	/// List of application level error codes in the domain layer of
	/// the AcademicPlanner application.
	/// </summary>
	/// <version>1.0</version>
	/// <since>1.0</since>
	public enum DomainErrorCode
	{
		NONE,
		// General
		G_SAVE_ENTITY_FAILURE,

		// Components
		C_NOT_UNIQUE_PERSON_EMAIL,
		C_NOT_AUTHORIZED_CREATE_PERSON,
		C_REGISTRATION_EMAIL_FAILURE,
		C_ADD_ACOBJECT_TOKEN_FAILURE,
		C_PERSON_TO_SETUP_NOT_FOUND,
		C_PERSON_ALREADY_SETUP,
		C_NOT_AUTHORIZED_CREATE_ACCOUNT,
		C_NOT_UNIQUE_ACCOUNT_USERNAME,
		C_INVALID_PERSON_ACCOUNT_PROPERTIES,
		C_ADD_ACOBJECT_FAILURE,

		// Models
		M_ENTITY_RETRIEVAL_BY_ID_FAILURE,
		M_INVALID_PERSON_PROPERTIES,
		M_PERSON_ENTITY_RETRIEVAL_BY_EMAIL_FAILURE,
		M_ACCOUNT_ENTITY_RETRIEVAL_BY_USERNAME_FAILURE,
		M_INVALID_USER_PROPERTIES,
		M_INVALID_ACCOUNT_USER_PROPERTIES
	}
}
